#pragma once

#include <QMainWindow>
#include <QVBoxLayout>

#include "generic_controller.h"
#include "control_panel.h"

#include "view_data.h"

QT_BEGIN_NAMESPACE

namespace Ui {
class Pig;
}

QT_END_NAMESPACE

class Pig final : public QMainWindow
{
    Q_OBJECT

public:
    explicit Pig(QWidget *parent = nullptr);
    ~Pig() override;

    Ui::Pig *ui;
    QVBoxLayout *vctLayout;

    std::shared_ptr<eintik::presentation::controller::GenericController> controller {};
    std::shared_ptr<eintik::presentation::panel::ControlPanel> control_panel {};
    std::shared_ptr<PigViewData> pd {};

    void Init();
};
